#include<iostream>
#include"RBTree.h"
namespace bit
{
	
	template<class T>
	struct SeyKeyOfT
	{
		template<class T>
		const T& operator()(const T& value)
		{
			return value;
		}
	};
	template<class T>
	class set
	{	

	public:
		
		typedef typename T key_type;
		typedef typename  T value_type;
		typedef typename SeyKeyOfT<T> SeyKeyOfT;
		typedef typename RBTree<value_type,SeyKeyOfT> Tree;
		typedef typename RBTreeNode<value_type> Node;
		typedef typename bit::RBTree<value_type, SeyKeyOfT>::const_iterator const_iterator;
		typedef typename bit::RBTree<value_type, SeyKeyOfT>::iterator iterator;
	public:
		Tree* _tree;
		set()
		{
			_tree = new Tree();
		}

		iterator begin()
		{
			return _tree->begin();
		}

		const_iterator begin()const
		{
			return _tree->begin();
		}
		iterator end()
		{
			return _tree->end();
		}

		const_iterator end()const
		{
			return _tree->end();
		}

		iterator insert(value_type value)
		{
			return _tree->insert(value);
		}
	
	};

}